package com.own.business.exam.entity.bo;


import com.own.business.exam.entity.po.ExamRule;
import com.own.component.common.base.entity.BaseBo;
import com.own.constant.ConstantBeanSuffix;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * ExamRuleBo
 *
 * @author 陈学礼 （你是一段成熟的代码，要学会自己改bug）
 * @version 4.0.0
 * @date 2021/05/18 14:43:47
 * @since 4.0.0
 */
@ApiModel("考试规则表" + ConstantBeanSuffix.BO)
@Getter
@Setter
@ToString
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class ExamRuleBo extends BaseBo<ExamRule> {

    @ApiModelProperty("考试id")
    private Long examId;

    @ApiModelProperty("规则名称")
    private String name;

    @ApiModelProperty("规则类型 1=指定试卷（所有使用这个规则的考试都会使用指定的试卷进行答题，指定的试卷可以是多份） 2=随机试卷（试卷内容根据规则全随机） 3=弱项试卷（会根据个人的错题内容进行按筛选符合的试卷）")
    private Integer type;

    @ApiModelProperty("是否指定账号 1=指定 0=不指定")
    private Integer isAssignAccount;

    @ApiModelProperty("是否指定人数 1=指定 0=不指定")
    private Integer isAssignNumber;

    @ApiModelProperty("考试最多容纳的人数 0表示不做限制")
    private Integer assignNumber;

    @ApiModelProperty("试卷生成的具体json")
    private Integer content;

    @ApiModelProperty("题目数量")
    private Integer number;

    @ApiModelProperty("账号列表")
    private List<String> accountList;

    @ApiModelProperty("题目数量列表")
    private List<ExamRuleQuestionCountBo> countList;

    /**
     * 转持久化对象
     *
     * @param entity 原持久化对象
     * @return 持久化对象
     */
    @Override
    public ExamRule toPo(ExamRule entity) {
        if (entity == null) {
            entity = new ExamRule();
        }
        entity.setFkExamId(examId);
        entity.setName(name);
        entity.setType(type);
        entity.setIsAssignAccount(isAssignAccount);
        entity.setIsAssignNumber(isAssignNumber);
        entity.setAssignNumber(assignNumber);
        entity.setContent(content);
        entity.setNumber(number);
        return super.toPo(entity);
    }

}
